<?php
/**
 * Formulaire d'inscription
 */
require_once("include/setup.php");
require_once(CLASS_PATH.'user.class.php');
require_once(HELPER_PATH.'mail.helper.php');

$form_done = false;
$user = new User();

if (isset($_POST['user'])) {
	$data = $_POST['user'];
	$user = new User($data);
	
	$errors = array();
	if (empty($data['password'])) {
		Notification::add(Notification::$ERROR, "Merci de renseigner un mot de passe.");
		$error = true;
	}
	if (empty($data['password_confirm'])) {
		Notification::add(Notification::$ERROR, "Merci de renseigner le mot de passe de confirmation.");
		$error = true;
	}
	if (empty($data['email'])) {
		Notification::add(Notification::$ERROR, "Merci de renseigner l'email.");
		$error = true;
	}
	if ($data['password'] != $data['password_confirm']) {
		Notification::add(Notification::$ERROR, "Les mots de passe ne sont pas identiques.");
		$error = true;
	}
	if (empty($data['cours_kojima']) {
		Notification::add(Notification::$ERROR, "Il est obligatoire de suivre les cours de Mr. Kojima pour pouvoir s'inscrire.");
		$error = true;
	}
	if (!empty($data['email'])) {
		$user2 = User::getUser(array(
			'email' => $data['email']
		));
		
		if ($user2) {
			Notification::add(Notification::$ERROR, "Cet e-mail est déjà utilisé.");
			$error = true;
		}
	}
	if (!$error) {
		$user->save();
		$key = $user->generateEmailKey();
		$error = false;
		if (empty($key)) {
			$error = true;
			error_log("[Japword - Inscription] Impossible de générer la clé.");
		}
		else {
			$m = new JapwordMail();
			$m->title = "Validation du compte";
			$m->to = $user->email;
			
			$m->assign('key', $key);
			$m->assign('id_user', $user->id_user);
			if (!$m->send('mails/user_validation.html')) {
				$error = true;
			}
			
			$m = new JapwordMail();
			$m->title = "Nouveau compte d'utilisateur";
			$m->to = MAIL_NOUVELLE_INSCRIPTION_SUPER_ADMINISTRATEUR;
			
			$m->assign('user', $user);
			$m->send('mails/user_validation.admin.html');
		}
		if ($error) {
			Notification::add(Notification::$ERROR, "Impossible de créer le compte. Veuillez ré-essayer plus tard.");
			$user->delete();
		}
		else {
			$form_done = true;
		}
	}
}

$v = new JapwordView();
$v->addNotifications();
if (!$form_done) {
	$v->assign('user', $user);
	$v->display('inscription.html');
}
else {
	$v->display('inscription.done.html');
}
?>